﻿#define _CRT_SECURE_NO_WARNINGS 1
// 原题连接：https://ac.nowcoder.com/acm/problem/213484
/*
题目描述：
链接：https://ac.nowcoder.com/acm/problem/213484
来源：牛客网

露米娅作为宵暗的妖怪，非常喜欢吞噬黑暗。
这天，她来到了一条路上，准备吞噬这条路上的黑暗。
这条道路一共被分为
𝑛

n 部分，每个部分上的黑暗数量为
𝑎
𝑖

a
i
​
  。
露米娅每次可以任取 连续的 未被吞噬过的 三部分，将其中的黑暗全部吞噬，并获得中间部分的饱食度。
露米娅想知道，自己能获得的饱食度最大值是多少？
输入描述:
第一行一个正整数
𝑛

n ，代表道路被分的份数。
第二行有
𝑛

n 个正整数
𝑎
𝑖

a
i
​
  ，代表每一部分黑暗数量。
数据范围：
3
≤
𝑛
≤
100000
,
1
≤
𝑎
𝑖
≤
1
0
9

3≤n≤100000,1≤a
i
​
 ≤10
9

输出描述:
一个正整数，代表最终饱食度的最大值。
示例1
输入
复制
7
2 4 1 4 2 1 8
输出
复制
6
说明
选择[2,4,1]和[4,2,1]这两段即可。饱食度为4+2=6。
示例2
输入
复制
7
2 4 1 7 2 1 8
输出
复制
7
说明
选择[1,7,2]这一段即可。饱食度为7。
值得注意的是，若取两段进行吞噬，反而最多只能获得6的饱食度，并不是最大的。
*/


#include <iostream>
#include <cstring>
using namespace std;
const int N = 1e5 + 10;
int nums[N];
long long dp[N]; // dp[i]表示选到第i个数时的最大饱食度
int n = 0;

int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%d", &nums[i]);
    }
    for (int i = 3; i <= n; i++) {
        dp[i] = max(dp[i - 3] + nums[i - 1], dp[i - 1]); 
        // 如果选择吞噬以i结尾的三段，则取的是中间的那个，所以这里加上的是nums[i - 1]
    }
    cout << dp[n] << endl;

    return 0;
}